import axios from 'axios'

// 优先使用 Vite 注入的环境变量 VITE_API_BASE_URL，若未设置则使用 '/'（相对路径）
const baseURL = import.meta.env.VITE_API_BASE_URL || '/'

const http = axios.create({
  baseURL,
  // 若后端需要跨域携带 cookie，设置为 true，并确保服务端允许 credentials
  // withCredentials: true,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 从 localStorage 恢复 token（若有）
const token = localStorage.getItem('jwt_token')
if (token) {
  http.defaults.headers.common['Authorization'] = 'Bearer ' + token
}

// 响应拦截器：遇到 401 清理并跳回登录
import router from '@/router'
http.interceptors.response.use(
  res => res,
  err => {
    const status = err.response?.status
    if (status === 401) {
      localStorage.removeItem('jwt_token')
      delete http.defaults.headers.common['Authorization']
      // 跳回登录
      if (router.currentRoute && router.currentRoute.value?.path !== '/login') {
        router.push({ path: '/login' })
      }
    }
    return Promise.reject(err)
  }
)

export default http